OData API query passthrough
The Query Passthrough option, when specified for an entity's Get Entity action, applies query filtering within the linked listener process.
We recommend architecting an OData service action to allow query passthrough for use with large data sets. A service otherwise incurs the overhead of initially retrieving all documents when servicing a Get Entity action request, which can affect the service’s performance.
If the $filter component is present in the request URI for the action, the Web Services Server operation in the linked listener process transforms the specified filter to a document. This document specifies an XML-formatted connector query filter with the root element <QueryFilter>. The process passes this document through and executes the query. OData native filtering is then applied to the result set.
If filter transformation fails, the document passed through the process contains an empty <QueryFilter/>. The result set in this case consists of all documents, as would be case for the action without query passthrough.
Query passthrough supports complex types. To filter by a field in a complex type, use the “/” character to delimit levels. For example, suppose you want to filter Contact entities by their Street field value, where Street is a field in an address object represented in the entity by the Address field. You would specify the field in the filter as Contact/Address/Street.
Query passthrough supports the following OData operators:
-
AND
-
EQ
-
GE
-
GT
-
LE
-
LT
-
NE
-
OR
The following OData operators are not supported for query passthrough:
-
ADD
-
SUB
-
MUL
-
DIV
-
MODULO
-
unary operators, such as ++, ––
OData functions, such as substringof, day, and round, are also not supported for query passthrough.